home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / GW AdaEd 1.4.2 / GWAdaDemos / NYUDemos / DRAW.ADA < prev    next >
Text File  |  1993-12-14  |  2KB  |  64 lines

  1. ----------------------------------------------------------------------
  2. --
  3. --              Maze Demonstration Main Program
  4. --
  5. --                      written by
  6. --
  7. --                   Edmond Schonberg
  8. --
  9. --                      Ada Project
  10. --                   Courant Institute
  11. --                  New York University
  12. --                   251 Mercer Street
  13. --                New York, New York  10012
  14. --
  15. -----------------------------------------------------------------------
  16.  
  17.  
  18. with maze, first_task, screen_io; 
  19. use maze, first_task, screen_io ;
  20. with text_io, my_int_io; 
  21. use text_io, my_int_io;
  22.  
  23. with random_numbers; use random_numbers;
  24. procedure draw is
  25.    start: position := (23, 10) ;
  26.    goal : position := (1, 66) ;
  27.    first_one: explore := new ex;
  28.    num_lines: positive;
  29.    rint: integer;
  30. begin
  31.     clear ;
  32.     loop -- loop to get number of paths and random number seed.
  33.     puts(" enter desired number of paths in maze", 1, 1);
  34.        begin
  35.        get(num_lines) ;
  36.        exit ;
  37.        exception
  38.           when others => 
  39.          puts("invalid data. Please make it a positive no.", 1, 1) ;
  40.          skip_line;
  41.        end ;
  42.     end loop;
  43.     loop
  44.     puts(" enter random seed (0 for value based on clock) ", 3, 1);
  45.        begin
  46.        get(rint) ;
  47.        if rint /= 0 then 
  48.            set_seed(rint); 
  49.            rint := rand_seed;
  50.        end if;
  51.        exit ;
  52.        exception
  53.           when others => 
  54.          puts("invalid data. Please make it a positive no.", 3, 1) ;
  55.          skip_line;
  56.        end ;
  57.     end loop;
  58.     maze.goal := goal ;
  59.     new_maze(start, goal, num_lines) ; -- build new maze
  60.     putc('@', goal.row,  goal.col) ;   -- note starting point
  61.     putc('*', start.row, start.col) ;  -- note ending point
  62.     first_one.start(start, up, first_one, first_one) ; -- solve maze
  63. end ;
  64.